#include "processbar.h"

#define MAX 101
#define BODY '='
#define HEAD '>'

char bar[MAX];
const char* label = "-\\|/";


////version-1
//void processbar()
//{
//    bar[0] = HEAD;
//    int cnt = 0;
//    while(cnt <= 100)
//    {
//        printf("[%-100s][%d%%][%c]\r", bar, cnt, label[cnt%4]);
//        bar[cnt++] = BODY;
//        if(cnt < 100)
//            bar[cnt] = HEAD;
//        fflush(stdout);
//        usleep(100000);
//    }
//    printf("\n");
//}


//version-2
void processbar(double rate)
{
    static int cnt = 0;
    int n = (int)rate;
    int i = 0;
    for(i = 0; i < n; i++)
    {
        bar[i] = BODY;
    }
    if(i < 100)
        bar[i] = HEAD;
    printf("[%-100s][%.1f%%][%c]\r", bar, rate, label[(cnt++)%4]);
    fflush(stdout);
    if(rate == 100.0)
        printf("\n");
    usleep(100000);
}

